<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   
      <title>8.2. Como migrar mis aplicaciones a otra versi&oacute;n de gvHidra</title>
      <meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2">
      <link rel="home" href="indice.html" title="Manual Usuario gvHidra">
      <link rel="up" href="ch08.html" title="Cap&iacute;tulo 8. Bitacora de cambios aplicados a gvHidra">
      <link rel="prev" href="ch08.html" title="Cap&iacute;tulo 8. Bitacora de cambios aplicados a gvHidra">
      <link rel="next" href="Apendices.html" title="Parte&nbsp;V.&nbsp;Apendices">
   </head>
   <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
      <div class="navheader">
         <table width="100%" summary="Navigation header">
            <tr>
               <th colspan="3" align="center">8.2. Como migrar mis aplicaciones a otra versi&oacute;n de gvHidra</th>
            </tr>
            <tr>
               <td width="20%" align="left"><a accesskey="p" href="ch08.html">Anterior</a>&nbsp;
               </td>
               <th width="60%" align="center">Cap&iacute;tulo 8. Bitacora de cambios aplicados a gvHidra</th>
               <td width="20%" align="right">&nbsp;<a accesskey="n" href="Apendices.html">Siguiente</a></td>
            </tr>
         </table>
         <hr>
      </div>
      <div class="section" title="8.2. Como migrar mis aplicaciones a otra versi&oacute;n de gvHidra">
         <div class="titlepage">
            <div>
               <div>
                  <h2 class="title" style="clear: both"><a name="d4e5826"></a>8.2. Como migrar mis aplicaciones a otra versi&oacute;n de gvHidra
                  </h2>
               </div>
            </div>
         </div>
             
         
             
         <p>En este documento apuntaremos las acciones a realizar en una
                aplicaci&oacute;n que utilice IGEP, para pasar de una versi&oacute;n a otra. Cada vez
                que hagamos alguna modificaci&oacute;n en igep que vaya a afectar a las
                aplicaciones que lo utilicen, lo apuntaremos aqui. Este documento est&aacute;
                orientado a Inform&aacute;ticos.
         </p>
         
             
         <div class="section" title="8.2.1. Versi&oacute;n 3.1.0">
            <div class="titlepage">
               <div>
                  <div>
                     <h3 class="title"><a name="d4e5829"></a>8.2.1. Versi&oacute;n 3.1.0
                     </h3>
                  </div>
               </div>
            </div>
                  
            
                  
            <p>23-11-2010</p>
            
                  
            <div class="itemizedlist">
               <ul class="itemizedlist" type="disc">
                  <li class="listitem">
                               
                     <p>Si se est&aacute; utilizando de forma complementaria al framework el
                                  proyecto jasper para creaci&oacute;n de listados, en esta versi&oacute;n ya se
                                  puede utilizar la versi&oacute;n 'jasper-3_0_0_4'.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Si el m&eacute;todo <span class="bold"><strong>IgepComunicacion::setAllTuplas</strong></span> no recibe un
                                  array corta la ejecuci&oacute;n. Asegurarse que si se le pasa la salida del
                                  m&eacute;todo consultar, hayan registros.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Si se ha definido alg&uacute;n m&eacute;todo nuevo de autenticaci&oacute;n, en
                                  m&eacute;todo autenticate a&ntilde;adir <span class="bold"><strong>IgepSession::session_start($p_apli, false);</strong></span>
                                  antes de crear instancia de Auth.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Si se usan clientes de web services con la clase <span class="bold"><strong>IgepWS_Client</strong></span> y no se ha fijado la opci&oacute;n de
                                  codificaci&oacute;n, ahora se fija a <span class="bold"><strong>latin1</strong></span>. Con esto ya no es necesario usar los
                                  m&eacute;todos uff8_encode/utf8_decode para convertir los datos.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p><span class="bold"><strong>(RECOMENDADO)</strong></span> El atributo
                                  <span class="bold"><strong>logSettings</strong></span> ya no se fija en la
                                  carga din&aacute;mica; a&ntilde;adirlo al <span class="bold"><strong>gvHidraConfig.inc.xml</strong></span> seg&uacute;n el nivel de log
                                  deseado en cada servidor donde se despliegue la aplicaci&oacute;n.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p><span class="bold"><strong>(RECOMENDADO)</strong></span> Si se usan
                                  fechas en servidores de web services se recomienda generarlas usando
                                  el m&eacute;todo formatSOAP de <span class="bold"><strong>gvHidraTimestamp</strong></span>.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Cambiamos el nombre del m&eacute;todo addCamposClave por <span class="bold"><strong>setPKForQueries</strong></span>.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>El m&eacute;todo ConfigFramework::setCustomDirName ya no existe. Si
                                  se ha definido alg&uacute;n custom nuevo, hay que actualizar la DTD porque
                                  ya no se puede fijar el atributo <span class="bold"><strong>customDirName</strong></span> (en los xml de la aplicaci&oacute;n y
                                  del framework si se puede). Pod&eacute;is copiar la DTD correcta del xml de
                                  cualquier custom.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Los m&eacute;todos de <span class="bold"><strong>ConfIgep</strong></span>
                                  <span class="emphasis"><em>formatoFecha, formatoNumero y
                                        formatoFechaNegocio</em></span> ya no existen.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Los m&eacute;todos de <span class="bold"><strong>IgepComunicaUsuario</strong></span> <span class="emphasis"><em>strtotime_es y
                                        timetostr_es</em></span> ya no existen.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>El m&eacute;todo <span class="emphasis"><em>ConfIgep::es_desarrollo</em></span> ya no
                                  existe. Si hay que hacer alguna acci&oacute;n dependiente del servidor,
                                  intentar configurar el xml para cada servidor, o si no hay m&aacute;s
                                  remedio usar el nombre del host para decidir. Cuestiones
                                  relacionadas:
                     </p>
                     
                               
                     <div class="itemizedlist">
                        <ul class="itemizedlist" type="circle">
                           <li class="listitem">
                                            
                              <p>En el servidor de producci&oacute;n ya no se fija el
                                               error_reporting (E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE).
                                               Se har&aacute; como est&eacute; definido en el servidor PHP.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Fijar el par&aacute;metro <span class="bold"><strong>&lt;reloadMappings&gt;false&lt;/reloadMappings&gt;</strong></span>
                                               en <span class="bold"><strong>producci&oacute;n</strong></span>, ya que por
                                               defecto est&aacute; habilitado.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Fijar el par&aacute;metro <span class="bold"><strong>&lt;smartyCompileCheck&gt;false&lt;/smartyCompileCheck&gt;</strong></span>
                                               en <span class="bold"><strong>producci&oacute;n</strong></span>, ya que por
                                               defecto est&aacute; habilitado.
                              </p>
                                          
                           </li>
                        </ul>
                     </div>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Actualizar la <span class="bold"><strong>DTD</strong></span> del fichero
                                  <span class="bold"><strong>gvHidraConfig.inc.xml</strong></span>. Pod&eacute;is
                                  copiar la DTD correcta del xml de la plantilla de aplicaci&oacute;n.
                                  Cambios realizados:
                     </p>
                     
                               
                     <div class="itemizedlist">
                        <ul class="itemizedlist" type="circle">
                           <li class="listitem">
                                            
                              <p>Se fija el rango del atributo status de queryMode de 0 a
                                               2. Si se ha fijado este elemento comprobar que es el deseado. El
                                               valor 3 ya no existe por lo que si se estaba usando (en
                                               ConfigFramework::setQueryMode, gvHidraForm_DB::setTipoConsulta o
                                               gvHidraSelectionWindow::setQueryMode) cambiar por valor
                                               1.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Cambia el atributo dnsRef de logSettings por el atributo
                                               dsnRef.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Se a&ntilde;ade el elemento opcional temporalDir, usado para
                                               fijar la ubicaci&oacute;n del fichero de sesi&oacute;n. (CIT: Es
                                               imprescindible para uso en producci&oacute;n)
                              </p>
                                          
                           </li>
                        </ul>
                     </div>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Cambios en las listas. La clase IgepLista pasa a llamarse
                                  <span class="bold"><strong>gvHidraList</strong></span>, podemos definir una
                                  fuente de datos externa. Pasos de migraci&oacute;n obligatorios:
                     </p>
                     
                               
                     <div class="itemizedlist">
                        <ul class="itemizedlist" type="circle">
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"IgepLista" -&gt; "gvHidraList"</em></span>.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"$this-&gt;addLista" por
                                                     "$this-&gt;addList"</em></span>.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"-&gt;marcarSeleccionado" por
                                                     "-&gt;setSelected"</em></span>.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"-&gt;setSeleccionado" por
                                                     "-&gt;setSelected"</em></span>.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"-&gt;addOpcion" por
                                                     "-&gt;addOption"</em></span>.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"-&gt;deleteOpcion" por
                                                     "-&gt;deleteOption"</em></span>.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"-&gt;setDefList" por
                                                     "-&gt;setList_DBSource"</em></span>.
                              </p>
                                          
                           </li>
                        </ul>
                     </div>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Cambios en las ventanas de selecci&oacute;n. La clase
                                  IgepVentanaSeleccion pasa a llamarse <span class="bold"><strong>gvHidraSelectionWindow</strong></span>, todas las ventanas de
                                  selecci&oacute;n tienen matching, podemos definir fuentes de datos
                                  externas, podemos fijar una tpl a partir de la cual mostrar dicha
                                  ventana.
                     </p>
                     
                               
                     <div class="itemizedlist">
                        <ul class="itemizedlist" type="circle">
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"IgepVentanaSeleccion" por
                                                     "gvHidraSelectionWindow"</em></span>.
                              </p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"$this-&gt;addVentanaSeleccion" por
                                                     "$this-&gt;addSelectionWindow".</em></span></p>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p><span class="emphasis"><em>A&ntilde;adir addMatching</em></span>. Para poder
                                               reutilizar las ventanas de selecci&oacute;n en diferentes paneles,
                                               ahora incorporan Matching. Esto quiere decir, que tendr&aacute;n un
                                               nombre los campos resultado y nosotros podremos asociarlos a
                                               nuestros campos de la tpl. A efectos de migraci&oacute;n, esto supone
                                               que, el tercer par&aacute;metro de las antiguas llamadas a
                                               IgepVentanaSeleccion se transforma en una o varias llamadas al
                                               m&eacute;todo addMatching.
                              </p>
                              
                                            
                              <div class="informalexample">
                                                 
                                 
                                                 <pre class="programlisting">// VERSI&Oacute;N ANTERIOR
$codper = new IgepVentanaSeleccion("codper","PERSONAS",array("codper","nom"));
$this-&gt;addVentanaSeleccion($codper);

// VERSI&Oacute;N 3.1.1
$codper = new <span class="bold"><strong>gvHidraSelectionWindow</strong></span>("codper","PERSONAS"); //Eliminamos el array.
$codper-&gt;<span class="bold"><strong>addMatching</strong></span>('codper','codper'); //Creamos tantas llamadas al metodo addMatching como elementos del array
$codper-&gt;addMatching('nom','nom');  // Nota: los dos parametros ser&aacute;n el mismo para que funcione como en la version 3.0.X
$this-&gt;<span class="bold"><strong>addSelectionWindow</strong></span>($codper);</pre>
                                               </div>
                                          
                           </li>
                           <li class="listitem">
                                            
                              <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de
                                               <span class="emphasis"><em>"-&gt;setDefVS" por
                                                     "-&gt;setSelectionWindow_DBSource"</em></span>.
                              </p>
                                          
                           </li>
                        </ul>
                     </div>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Reemplazar en todo el c&oacute;digo cualquier ocurrencia de <span class="bold"><strong>"-&gt;setDependencia" por
                                        "-&gt;setDependence"</strong></span>.
                     </p>
                             
                  </li>
                  <li class="listitem">
                               
                     <p>Cambio del nombre de la clase de cheks. Reemplazar en todo el
                                  c&oacute;digo cualquier ocurrencia de "IgepCheckBox" por "<span class="bold"><strong>gvHidraCheckBox</strong></span>"
                     </p>
                             
                  </li>
               </ul>
            </div>
                
         </div>
           
      </div>
      <div class="navfooter">
         <hr>
         <table width="100%" summary="Navigation footer">
            <tr>
               <td width="40%" align="left"><a accesskey="p" href="ch08.html">Anterior</a>&nbsp;
               </td>
               <td width="20%" align="center"><a accesskey="u" href="ch08.html">Subir</a></td>
               <td width="40%" align="right">&nbsp;<a accesskey="n" href="Apendices.html">Siguiente</a></td>
            </tr>
            <tr>
               <td width="40%" align="left" valign="top">Cap&iacute;tulo 8. Bitacora de cambios aplicados a gvHidra&nbsp;</td>
               <td width="20%" align="center"><a accesskey="h" href="indice.html">Inicio</a></td>
               <td width="40%" align="right" valign="top">&nbsp;Parte&nbsp;V.&nbsp;Apendices</td>
            </tr>
         </table>
      </div>
   </body>
</html>